package com.compile;


import java.util.List;

/**
 * Created by zhoulikai on 17/2/17.
 */

public interface IJavaMake {
    /**
     * 修饰符
     */
    public static final class Modification {
        public static final int PUBLIC = 0x1;
        public static final int STATIC = 0x2;
        public static final int FINAL = 0x4;
    }

    /**
     * 生成java文件
     *
     * @param fileName
     * @param path
     * @return
     */
    String makeJavaFile(String fileName, String path);

    /**
     * 变量描述
     */
    public class Field {
        public int modification;
        public String name;
        public String value;
        public String note;
    }

    /**
     * 类描述
     */
    public class Class {
        public int modification;
        public String name;
        public String note;
    }

    /**
     * 内部类创建，只支持类成员变量生成
     *
     * @param javaFile
     * @param cls
     * @param fields
     */
    void makeJavaClass(String javaFile, Class cls, List<Field> fields);
}
